יש לי קוד שמקטין תמונות עם gd,
ועל השרת התקנתי את התכנה jpgoptim שמייעלת את התמונה ושתשקול פחות עם אותה איכות.
עכשיו בקוד ההקטנה של התמונות נוצר תמונה אבל היא לא פיסית,
היא רק בקוד שבסוף היא מושמדת,
השאלה היא כזאת:
האם ניתן לעבד את התמונה. לפני שליחת ללקוח בעזרת jpgoptim?
תודה לעונים :-)
9 תשובות
יש לך מגוון דרכים להפעיל פקודות מתוך PHP
php.net/exec
php.net/system
php.net/proc_open
תודה אלכס,
אבל את זה אני יודע,
שים לב שוב לבעיה שלי:
פעולת הפקודה צריך להתבצע על משאב שנמצא רק בPHP.
על תמונה שPHP מייצר.
כנראה שתצטרך לשמור את התמונה לקובץ, כיוון שהמשאב פנימי ל PHP.
אמנם אפשר לנסות לקבל גישה לזיכרון של PHP אל אותו משאב, אבל התכנות האחרות לא יבינו שזה תמונה.
אוקיי הבנתי,
עכשיו השאלה אם יש עניין בכלל להתאמץ בשביל זה?
אולי ידוע לך על קוד שמקטין את גודל התמונה (במשקל לא בפיקסלים)
יש את הפונקציה הזאת.
אתה יכול לשמור לקובץ tmp ואז לעבד את זה דרך התוכנה.
הבנתי שהתוכנה הזאת לא מעבדת מחדש היא פשוט מסדרת הקידוד הקיים עם פחות זיכרון.
תנסה אותה על קובץ אחד ותראה כמה זה חוסך ולפי זה תשקול עם זה שווה.
בפרמטר של הפונקציה שמוציאה jpg ב php יש פרמטר אחרון של האיכות. שם אתה יכול להוריד את האיכות וזה יהיה קובץ יותר קטן, בלי להוריד את כמות הפיקסלים.
@mat תודה,
אבל הדרך הזאת לא מפחיתה את משקל התמונה ללא איבוד של איכות.
וזה חוסך הרבה לפעמים 50% אפילו,
בנתיים עשיתי קרון שירוץ על כל התמונות שבשרת פעם בחודש.
אני מאמין שרוב התוכנות האלה עובדות דרך imageMagic
או שכבר יש את האלגוריטמים הנכונים ממומשים ב PHP.
תנסה לראות אם פקודה כמו http://php.net/manual/en/imagick.setimagecompressionquality.php
נותנת לך את התוצאה הרצויה
בנוסף mat אמר נכון. אין טעם לתת 100 אחוז quality.
70-80 נותנים תוצאה מעולה גם מבחינת גודל וגם מבחינת איכות.
בנוסף PNG נותנים את התוצאות הכי טובות מבחינת גודל. עדיף להשתמש בהם על פני דברים אחרים.
ולהשאיר איזשהי תוכנה בקרון שמקבצת את הקבצים נראה פתרון בסדר גמור.